Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
43 lines (33 loc) · 1.22 KB

15.14 - 使用jemalloc优化swoole内存分配性能.md

File metadata and controls

43 lines (33 loc) · 1.22 KB

使用jemalloc优化swoole内存分配性能

现已不建议使用jemalloc, 可能会降低程序稳定性

建议使用标准的malloc和PHP官方提供的emalloc (默认)

关于jemalloc

jemalloc是一个比glibc malloc更高效的内存池技术,在Facebook公司被大量使用,在FreeBSD和FireFox项目中使用了jemalloc作为默认的内存管理器。使用jemalloc可以使程序的内存管理性能提升,减少内存碎片。

安装jemalloc

编译安装:

cd jemalloc
./configure --with-jemalloc-prefix=je_
make -j 4

使用jemalloc

编译Swoole时增加--with-jemalloc-dir=/path/to/jemalloc

phpize
./configure --with-jemalloc-dir=/path/to/jemalloc
make 
make install

预先载入

除了手工编译jemalloc增加命名空间的使用方式之外也可以使用LD_PRELOAD使用jemalloc。此方法也可以用于Googletcmalloc内存池技术。

LD_PRELOAD="/usr/lib/libjemalloc.so" php server.php
LD_PRELOAD="/usr/lib/libtcmalloc.so" php server.php

/usr/lib/libjemalloc.so 请填写正确的jemalloc.so路径